features = readRDS("../../quality_control/human/QC_human__stability_selection__features.rds")
metadata = readRDS("../../quality_control/human/QC_human__stability_selection__features_metadata.rds")
layout = substr(rownames(features), 12, 14)
features = features[layout %in% c("L08"), ]
metadata = metadata[layout %in% c("L08"), ]
Renormalize features to make them comparable
features = apply(features, 2, function(x) {
(x - mean(x)) / sd(x)})
cell_line = "D004T01"
cl_features = features[metadata$CELL.LINE == cell_line, ]
cl_metadata = metadata[metadata$CELL.LINE == cell_line, ]
dmso_features = cl_features[cl_metadata$DRUG == "DMSO", ]
for(drug in unique(cl_metadata$DRUG)) {
if(drug == "DMSO") next
drug_features = cl_features[cl_metadata$DRUG == drug, ]
if(nrow(drug_features) < 10) next
combined_features = rbind(dmso_features, drug_features)
annotation = data.frame(
"Treatment" = cl_metadata[rownames(combined_features), "DRUG"],
"Concentration" = as.character(ifelse(
test = cl_metadata[rownames(combined_features), "DRUG"] == "DMSO",
yes = NA, no = cl_metadata[rownames(combined_features), "CONCENTRATION"])),
row.names = rownames(combined_features))
annotation_colors = list(
"Treatment" = c("Blue", "Red"),
"Concentration" = c("Grey", "Yellow", "Blue", "Green", "Red"))
names(annotation_colors$Treatment) = c("DMSO", drug)
names(annotation_colors$Concentration) = levels(annotation$Concentration)
pheatmap(
mat = dist(combined_features), annotation_col = annotation,
annotation_colors = annotation_colors, main = drug)
}